查看原文
其他

开源人物志01|理查德·斯托曼:我能发起“自由软件”运动全靠那台打印机(上)

周荔人 开源青年 2022-05-28
当你从朋友圈点开这篇文章的标题,就已经在使用开源软件提供的服务了。
网页运行的服务器操作系统是 GNU/Linux。
你使用的手机是 Android 系统,你使用的 App 使用的是 Swift/Java 编程语言编写的……
开源软件如同空气中的氧气一样,它是整个空气中的一部分,而且是非常重要的一部分。空气中没有氧气,生命就不会存在,软件世界没有开源软件,计算机工业就不会发展的如此迅速。
什么是开源软件?
什么是自由/开源软件运动?
开源软件背后是哪些“天降猛男”在推动?
追根溯源,还是要从理查德斯托曼开始讲起。
所以本期开源人物志,我们就来说一说关于自由软件之父——理查德斯托曼的故事。
在开源青年公众号后台回复“自由故”,即可获得《若为自由故:自由软件之父理查德 斯托曼传》的网页版链接。

如果你是一名学生或者是未来想从事软件行业的开发者,或者已经在软件相关的专业就读。请你一定要看下去。这些内容并不会提高你的编程技巧,但是却能让你了解每一位“天降猛男”背后的故事。

八岁的时候我已经在看微积分了
1953年3月,斯托曼出生于美国纽约一个犹太人家庭,他的母亲爱丽丝·利普曼是一名教艺术的老师,父亲丹尼尔·斯托曼是一名印刷机商人。
“斯托曼从小就在数学上就表现出强烈的天分。”斯托曼的妈妈回忆道。
那是1961年,斯托曼的妈妈李普曼刚刚离异做了单亲妈妈。
“那时我正在家里翻着一期《科学美国人》杂志打发时光” 
《科学美国人》杂志有一个专栏叫做《数字游戏》,那里会有各种数学游戏。
“其实,这些题目我做的不是很好,可是作为艺术家,我发现它们可以帮助我缓解压力,激发灵感。”
“我刚开始做,就遇到了障碍,我正要扔开杂志,放弃解答,这时候我发现,斯托曼正在轻拽我的衣袖。”
“他跟我说,他已经知道这道题怎么解了。那个时候他才八岁,我知道他很聪明,但是这次却实实在在让我见识了他究竟有多聪明。”
“也是在八岁,斯托曼已经把微积分教材翻了透。”
斯托曼在数学上的天分初露锋芒。

我要去哈佛上学
12岁那年,斯托曼上中学了,学校老师建议他参加“哥伦比亚科学之星计划”。
“哥伦比亚科学之星计划”旨在为具有天赋的纽约中学生提供更多的学习机会。
斯托曼听从了老师的这个建议。
他每周六都会赶去哥伦比亚大学,就这样,每周都跟参加计划的优秀学生一起,斯托曼难免会跟他们一样,考虑以后的人生规划。
“哥伦比亚科学之星计划”的学生,大部分都会把未来的大学瞄准在这两所常春藤学校:哈佛大学和麻省理工学院。
妈妈李普曼知道他想去常春藤学校,可是眼下的斯托曼却有那么“亿点点”的问题。
他天天在学校和老师对着干。
斯托曼的美国历史、化学、法语、代数成绩都是 A,但是他拒绝写作文,所以英语是 F。
这种特立独行的性格放在麻省理工学院,也许就是一笑而过,可是如果是去哈佛,则是一个很严重的问题。
为了让斯托曼能够考上大学,妈妈李普曼给他换了学校,并要求他把英语成绩提上去。

然后在毕业前的最后一个学期,斯托曼的英语拿了96分(满分100分),其他学科成绩依然遥遥领先,年纪排名第四。
他被哈佛大学数学系录取。

与软件结缘
斯托曼12岁的时候去参加一个科学夏令营,夏令营的顾问给了他一份 IBM7090 的手册。
在那年的暑假结束的时候,斯托曼已经根据这份手册,自己在纸上写了一份程序(真“写”程序)他迫不及待地希望有一天能够在真正的机器上跑跑自己的程序。
可以那会儿还是20世纪60年代,距离第一台个人计算机还有15年的时间,他并没有机会接触到 IBM7090。

IBM 7090 是第一台晶体管计算机,使用穿孔卡片,由 IBM 制造。有 32K 内存,系统用 5K,用户用 27K,用户数据在内存和一台磁鼓之间切换。运行着最为著名的批处理系统 IBSYS。一台 IBM 7090 大约要花 300万美元。
虽然没有机会接触到 IBM 7090,但是软件这颗种子已经种下。
斯托曼第一次使用计算机是在11年级(相当于中国的高二)结束的那个暑假。那个暑假斯托曼加入了 IBM 纽约科学研究中心,他写下了他有生以来第一个跑在计算机上的程序 —— 一个使用 PL/I 语言编写的预处理器。
但是最后越写越大,计算机里放不下,所以斯托曼就用汇编语言又重写了一遍。

去麻省理工
哈佛大学数学系的学生都靠选修艺术类和历史课来放松,斯托曼选择跑去哈佛的机房缓解压力。
当年第一次在 IBM 纽约科学中心编程的经历,诱使着斯托曼去了解更多。
“在哈佛学习快一年的时候,我开始跑去哈佛的几个计算机实验室,看看他们那里有什么新东西。刚到那里,我就问他们能不能给我一份使用手册。”
在那个时候,尽管很多实验室不允许让斯托曼这种小孩子在电脑上操作,但是斯托曼除外,他们同意让他运行自己的程序。
在哈佛的第一年快结束的时候,斯托曼听说在麻省理工学院,有个特殊的实验室。
没错,就是咱们经常听到的麻省理工人工智能实验室。里面有各种高级计算机和软件。
斯托曼被这个实验室所吸引,决定去一探究竟。
走在麻省理工学院的校园里,斯托曼感慨道,麻省理工和哈佛是两所校风迥异的大学,麻省理工是“五步一楼,十步一阁”。哈佛则显得宽敞明亮,两所大学一张一弛,一阴一阳。
建筑上的差异也体现在了校风上,麻省理工学院里多是中学里的怪才,爱开玩笑,喜欢恶作剧。而哈佛大学的学生更多是家里有背景或是从小有政治抱负的青年。
校风的差异延伸到计算机实验室中,麻省理工的计算机实验室是没有门卫的,没有人拿着小本本,记着等待使用终端的人,也没有“禁止触摸”标识。而哈佛大学恰恰相反。
他在麻省理工的人工智能实验室只看到了几个没有人使用的终端和机械臂。
斯托曼在和麻省理工人工智能实验室的雇员熟络之后,雇员帮助他在麻省理工的人工智能实验室安排了一份工作职位。
到了1970年底,斯托曼周一到周四在哈佛上课,周五下午乘坐地铁直奔麻省理工人工智能实验室。

打印机事件
时间来到了1980年,斯托曼 27岁,他是麻省理工人工智能实验室的一名程序员。
1980年对于斯托曼来说非常不同,因为“打印机事件”发生让他和自由软件运动仅仅的绑定在了一起。
当时施乐公司会向麻省理工学院人工智能实验室捐赠最新产品,麻省理工的人工智能实验室这次收到的是一款最新的激光打印机,它也是激光打印的第一代产品。它工作速度很快,像素点很细小,确实不错。但是缺点就是不太靠谱,有时一小时内它会卡机数次。它诞生于著名的施乐帕罗奥多研究中心(Xerox Palo Alto Research Facility)。

以太网、鼠标、图形用户界面全部来自于这里。
没有人会想到,再过大约十年,世界将会发生一场打印机革命,那时,许多计算机厂商都会投身其中。而这款打印机则是这场革命的先行者。
这台激光打印机不太靠谱的原因是,它是由上一代的复印机改造而来,复印机和打印机的人机交互模式是不同的,最显而易见的就是复印的时候人总是在机器旁边,而打印的时候人却不会。
这种打印机卡纸的问题在斯托曼看来已经不新鲜了。他们的解决办法就是——改驱动程序。
这点跟现在很不一样,当时的购买硬件产品的时候,大部分会附送驱动程序的源代码,注意是源代码,并且可以随意改动和再发布。
为什么会附送源代码呢?因为当时的收益来自于被销售的硬件,软件并不能赚到钱。第二是因为,当时各种型号的硬件很多,而厂商无法为每一款硬件做适配,所以公布源码,让“黑客”们自己去做适配吧。反正软件不赚钱,你说是吧?
就算不附送,斯托曼也可以通过一些“特殊关系”——从哈佛的机房里复制出源代码。
所以这对于斯托曼这些程序员来说,并不是什么问题。
对于20世纪70年代的程序员来说,把软件复制来复制去,就好比从邻居家借碗酱油那样稀松平常。所不同的是,你从邻居家哪里拿了多少酱油,邻居家就少了多少,复制一个程序出来,并不影响其他人继续使用那个程序。
斯托曼做的改动也很简单,就是在卡纸的时候,在计算机上提醒打印文件的人:
“机器卡纸了,请去维修”。
但是这台激光打印机很不一样,因为只有一台机器。因为施乐公司这次并没有公开源代码,斯托曼也想:
“也是,人家都白送机器过来了,我们何必还找人要驱动的源代码呢?”
负责开发施乐这台打印机的是卡耐基梅隆大学的人工智能实验室的一位教授,碰巧斯托曼获得了一次访问该大学的机会,他想联系这位教授要源代码,但是教授却说:
“我签署了保密协议,我答应了公司不能泄漏代码”
那个时代的大背景是,美国提供的国家经费逐渐减少,为了能够寻求到更多的资金,实验室和大学都开始转向私人领域。到了1980年,包括很多黑客在内的实验室大部分成员都同时参与研究项目与商业项目。
源代码正在被知识产权法所保护,参与项目的开发人员也会和公司签署保密协议。
斯托曼当时气炸了,亲自拜访同行可谓是一种充满诚意的方式了,但是他却吃了一个闭门羹
“我当时非常生气,都不知道怎么表达”
这个事件被斯托曼称为他人生的转折点。这次事件后,实验室中发生了一些更令人不愉快的事情:
实验室中分离出一个“Symbolics”的公司,几乎雇走了所有实验室的黑客,程序和机器没有人修。
实验室中的 LISP 计算机最初作为人工智能的一部分,实验室中有人觉得这个项目做的这么好,是时候成立一个公司,把它推广到市场,并通过它盈利了。这个公司就是“Symbolics”
当“Symbolics”成立的时候,斯托曼突然从这个项目中消失了。
办公室的“人事变动”让斯托曼开始思索脑海中由来已久的问题。
“软件本该共享”
斯托曼说:“我以前有过一些初步的想法,认为软件本该共享。可当时还不知道怎么表达。那时的想法还没有清晰到可以用简单的几句话给别人介绍”。
斯托曼决定要做点什么事情了……

END

站在巨人的肩膀上
  • https://zh.wikipedia.org/wiki/理查德·斯托曼
  • https://zh.wikipedia.org/wiki/IBM_7090
  • http://www.infosophy.net/wenxian/speech-paris-univ.htm
  • 《若为自由故:自由软件之父理查德 斯托曼传》[美]SAM WILLIAMS 著 邓楠 李凡希 译
  • 《开源软件文集:开源革命之声》Chris DiBona,Sam Ockman,Mark Stone 编 洪峰 译

开源青年

开源青年是一个挖掘开源故事的公众号

每周三更新

感谢关注❤️



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存